Pre-License Development Tool

ABSTRACT

Methods, computer-readable media, software, and apparatuses provide a tool for use by drivers and/or coaches throughout the pre-license stage of obtaining a driver’s license. A pre-license program may control a computing device to collect drive data while a driver is driving a vehicle. This drive data may be used to detect a drive event. Then, the computing device may present coaching information associated with the detected drive event. The coaching information may provide a passenger, such as a coach or parent, with real-time advice for instructing the driver how to improve his/her driving skills. Moreover, the drive data collected may be used to prepare reports providing feedback to the drivers and coaches. Further, the pre-license program may determine an expected track for a driver to follow to prepare for a driver’s license test and may indicate whether the driver is on or off the track.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S.Application No. 17/131,030, filed on Dec. 22, 2020, which is acontinuation of and claims priority to U.S. Application No. 16/031,531,filed on Jul. 10, 2018, which is a divisional of and claims priority toU.S. Pat. Application No. 14/522,197 filed on Oct. 23, 2014, whichclaims priority to U.S. Provisional Pat. Application No. 62/011,320,filed on Jun. 12, 2014. This application is also a continuation-in-partof and claims priority to U.S. Pat. Application No. 13/826,890, filed onMar. 14, 2013, now U.S. Pat. No. 9607526, issued on Mar. 28, 2017. Eachof these applications is incorporated by reference in its entiretyherein.

FIELD OF ART

Aspects of the disclosure generally relate to computer systems andcomputer software. More particularly, aspects of this disclosure providea tool for generating feedback for drivers seeking their driver’slicense and assisting others to instruct the drivers throughout thepre-license stage.

BACKGROUND

Car accidents are a common cause of injury and damage, and the costsresulting from car accidents can be significant. The frequency of caraccidents is especially high for young and/or novice drivers. There is ademand to reduce the number of accidents among this group of drivers. Inthe United States, many states require mandatory training for newdrivers. This training may include attending classes and/or taking adriving course with a certified instructor. Further, in many states,prior to obtaining a driver’s license, users may receive a drivingpermit that allows them to drive as long as another person with a validdriver’s license is in the vehicle. Often this other person is asked ordesires to teach the driver to drive. However, this other person mightnot know how to teach the driver or might want advice on how to teachthe driver.

Accordingly, new systems, devices, methodologies, and software aredesired to provide teaching assistance to passengers, such as parents,driving coaches, etc., to aid in teaching novice drivers, such asteenagers, how to drive. New systems, devices, methodologies, andsoftware are likewise desired to teach drivers to drive better and moresafely.

BRIEF SUMMARY

In light of the foregoing background, the following presents asimplified summary of the present disclosure in order to provide a basicunderstanding of some aspects of the invention. This summary is not anextensive overview of the invention. It is not intended to identify keyor critical elements of the invention or to delineate the scope of theinvention. The following summary merely presents some concepts of theinvention in a simplified form as a prelude to the more detaileddescription provided below.

Aspects of the disclosure address one or more of the issues mentionedabove by disclosing methods, computer readable storage media, software,systems, and apparatuses for providing a tool that tracks progression ofdriving skills and experience of a student (e.g., a teenager) as he/shelearns to drive. The tool further presents coaching advice to coaches(e.g., parents, friends, etc.) in real-time while the student is drivingand feedback to students for their review after driving.

Aspects of this disclosure provide computer readable media storingcomputer-executable instructions that, when executed, cause a computingdevice (e.g., a parent’s smartphone) to collect drive data (e.g.,acceleration, deceleration, g-force, time of day, etc.) while a driveris driving a vehicle, detect a drive event based on the drive data, andpresent coaching information associated with the drive event in responseto detecting the drive event. A drive event may be, for example, a brakeevent or turn event or any behavior or pattern exhibited by a driverwhile driving. The computer-executable instructions may further causethe computing device to determine the coaching information based ondriver information associated with the driver and/or informationassociated with the coach (e.g., information indicating whether a coachoverreacts and/or a degree to which the coach overreacts). In somecases, this driver information may be retrieved from another computingdevice associated with the driver (e.g., a smartphone of the driver).During the drive, the computer-executable instructions may further causethe computing device to receive a user request for coaching informationand may present the requested coaching information. Also during thedrive, the computer-executable instructions may further cause thecomputing device to predict a future drive event, such as an upcomingbrake event and/or upcoming turn event. In response to predicting afuture drive event, the computer-executable instructions may cause thecomputing device to present coaching information for the predictedfuture drive event. After the drive, the coach’s (e.g., parent’s)smartphone may transmit the coaching information to the driver’ssmartphone, so the driver may review the coaching information. Aspectsof the disclosure also provide the computing device or apparatusincluding the computer readable media storing such computer-executableinstructions. The computing device or apparatus may be a smartphone,tablet, laptop, vehicle’s computing device (including a vehicle’sin-dash display screen), etc.

Aspects of the disclosure further provide a method of collecting drivedata while a driver is driving a vehicle, detecting a drive event (e.g.,brake event, turn event, etc.) based on the drive data, and presentingcoaching information associated with the drive event in response todetecting the drive event. This method may further include retrievingdriver information from another computing device associated with thedriver (e.g., a driver’s smartphone), determining the coachinginformation based on the driver information associated with the driver,and transmitting the coaching information to the driver’s smartphone.The method may also include receiving a user request for a second pieceof coaching information, and presenting the second piece of coachinginformation. Further, the method may include providing a suggestedroute, predicting a future drive event using map information of thesuggested route, and presenting additional coaching informationassociated with the future drive event in response to predicting thefuture drive event. Still, in some examples, the method may also includerecording audio within the vehicle while the driver is driving, andtransmitting the recording to another computing device after the drive.

In addition, aspects of this disclosure provide a non-transitorycomputer readable storage medium storing a pre-license program. Thepre-license program may include computer-executable instructions that,when executed, cause a computing device to receive a target driver’slicense test date (e.g., a date on which a student/teen aims to take adriver’s license test provided by, for example, a department of motorvehicles (DMV) of a state); determine a total number of days until thetarget driver’s license test date; and indicate whether a driver is ontrack to reach a target skill level by the target driver’s license testdate. The instructions, when executed, may also cause the computingdevice to prompt a user for the target driver’s license test date duringregistration of the computer-executable instructions. The instructions,when executed, may also cause the computing device to divide the totalnumber of days into a plurality of groups, wherein each of the pluralityof groups is associated with a skill level (e.g., level one, level two,etc.). The total number of days may be divided according to an algorithmthat sets forth percentages (e.g., ratios, fractions, etc.) of the totalnumber of days to be assigned to the plurality of groups, respectively.For example, the algorithm may cause the first 10% of the total numberof days to be assigned to level one, the next 25% (e.g., the 25% afterthe 10%) of the total number of days to be assigned to level two, and soon until all days are assigned to one of the levels. Any number oflevels may be implemented.

In some embodiments, indicating that the driver is not on track (e.g.,not on pace) to reach the target skill level by the target driver’slicense test date may comprise displaying a calendar using one color toindicate a projected skill level associated with a present date andanother color to indicate an actual skill level associated with thepresent date. Additionally, or alternatively, in some embodiments,indicating that the driver is not on track to reach the target skilllevel by the target driver’s license test date may comprise displaying acircle graph that is shaded in a clockwise direction according to anactual skill level of the driver; and displaying a marker on the circlegraph showing a projected skill level at a present date. In someembodiments, indicating that the driver is on track to reach the targetskill level by the target driver’s license test date may comprisedisplaying a circle graph that is shaded in a clockwise directionaccording to a skill level of the driver; and displaying a marker (e.g.,an icon indicating the present date) over a shaded portion of the circlegraph.

Further, the computer-executable instructions, when executed, may causethe computing device to determine a skill level of the driver withrespect to each of a plurality of test skills; and display the skilllevel of the driver with respect to each of the plurality of test skillsby shading an area associated with the plurality of test skills,respectively. The computer-executable instructions may also cause thecomputing device to present a screen that allows a user to change theplurality of test skills. In some embodiments, the computer-executableinstructions may cause the computing device to provide tip informationto a user of the computing device, for example, in response to aselection indicating the driver is starting a drive. When executed, thecomputer-executable instructions may further cause the computing deviceto determine a weakest skill (or other driving skills needingimprovement) of the driver among a set of skills to be tested during thedrive. Is such a case, the tip information may include informationrelated to improving the weakest skill. The computer-executableinstructions may further cause the computing device to start a timer totime the drive, wherein the timer is started in response to theselection. Moreover, the computer-executable instructions may cause thecomputing device to prompt a user of the computing device to provide ascore for each of a plurality of test skills to be tested during a driveperformed by the driver.

Aspects of the disclosure also include an apparatus comprising aninterface configured to interface with an input device, at least oneprocessor, and memory storing computer-executable instructions. Thecomputer-executable instructions may cause this apparatus to receive atest date via the interface; determine a set of days from a date onwhich the test date is received until the test date; and assign one of aplurality of levels to each day of the set of days; and responsive toexecution of the computer-executable instructions on a particular day ofthe set of days, indicate a first level assigned to the particular day(e.g., indicate level two if the user is projected to be on level two onthe particular day) and a second level representing a driver’s skills asof the particular day (e.g., indicate level one if the user is actuallyat level one on the particular day), the first level and the secondlevel being different levels of the plurality of levels. Thecomputer-executable instructions may further cause this apparatus todetermine whether a present skill level of the driver is behind anexpected skill level of the driver by more than a threshold; and outputa notification, via the interface, indicating that the driver is behindthe expected skill level in response to determining that the presentskill level of the driver is behind the expected skill level of thedriver by more than the threshold. The computer-executable instructionsmay further cause this apparatus to determine a skill level of thedriver with respect to a particular driving skill based at least on ascore received for the particular driving skill. Also, the skill levelof the driver with respect to the particular driving skill may befurther determined based at least on a duration of a drive, weather,time of day, sound, or other factors associated with the score. Thecomputer-executable instructions may further cause this apparatus tooutput a pie chart comprising a pie slice associated with the particulardriving skill, wherein the pie slice is shaded, filled, or otherwisemodified according to the skill level of the driver.

Aspects of the disclosure also include a method of scoring and trackinga progress of a student/teen preparing for a driver’s license test. Themethod may include a step of receiving a plurality of scores for aplurality of driving skills, respectively. The method may also include astep of determining an overall skill level of a driver based on theplurality of scores. Further, the method may include a step ofcomparing, by a computing device, the overall skill level with a targetoverall skill level to determine a percentage of the target overallskill level reached by the driver. And, the method may includeoutputting a graph illustrating the percentage. The method may alsoinclude one or more of the following steps of determining whether anoption to start a drive is selected; determining whether a user of thecomputing device is a coach, parent, or other licensed and/or qualifiedperson in response to determining that the option to start the drive isselected; prompting the user to switch in response to determining thatthe user is a student or teen; providing tip information in response todetermining that the option to start the drive is selected; starting atimer in response to determining that the option to start the drive isselected; stopping the timer in response to determining that a secondoption to end the drive is selected; and outputting a screen to capturethe plurality of scores.

Of course, the methods and systems of the above-referenced embodimentsmay also include other additional elements, steps, computer-executableinstructions, or computer-readable data structures. In this regard,other embodiments are disclosed and claimed herein as well. The detailsof these and other embodiments of the present invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will be apparent from the description,drawings, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and is notlimited in the accompanying figures in which like reference numeralsindicate similar elements and in which:

FIG. 1 is a block diagram of an example computing device that may beused according to an illustrative embodiment of the present disclosure.

FIG. 2 illustrates an example network environment for implementingmethods according to the present disclosure.

FIG. 3 illustrates a flow diagram of an example process in accordancewith aspects of the present disclosure.

FIGS. 4A and 4B illustrate high-level diagrams of example interfacespresented by an application in accordance with aspects of the presentdisclosure.

FIG. 5 illustrates a flow diagram of an example process in accordancewith aspects of the present disclosure.

FIGS. 6A and 6B illustrate high-level diagrams of example interfacespresented by an application in accordance with aspects of the presentdisclosure.

FIG. 7 illustrates a flow diagram of an example process in accordancewith aspects of the present disclosure.

FIGS. 8A-8K illustrate example interfaces presented by an application inaccordance with aspects of the present disclosure.

FIGS. 9A-9C illustrate example interfaces presented by an application inaccordance with aspects of the present disclosure.

FIG. 10 illustrates an example interface presented by an application inaccordance with aspects of the present disclosure.

FIG. 11 illustrates example interfaces presented by an application inaccordance with aspects of the present disclosure.

FIG. 12 illustrates example interfaces presented by an application inaccordance with aspects of the present disclosure.

FIG. 13 illustrates an example interface presented by an application inaccordance with aspects of the present disclosure.

FIG. 14 illustrates example interfaces presented by an application inaccordance with aspects of the present disclosure.

DETAILED DESCRIPTION

In accordance with various aspects of the disclosure, methods,computer-readable media, software, and apparatuses are disclosed thatprovide a suite of pre-license applications that drivers, coaches, andvehicles may execute to provide an enhanced driver education experience.A pre-license coach application may execute on a passenger’s userdevice, e.g., a smartphone, to collect drive data as a driver ispracticing driving, and to present coaching information that thepassenger may use to coach the driver during the drive. The pre-licensecoach application may give specific coaching information based on eventsoccurring during the drive. For example, the pre-license coachapplication may detect a brake event and/or turn event, and providecoaching information to the passenger so that the passenger may teach(or coach) the driver about braking and/or turning, respectively.

Meanwhile, a pre-license driver application may execute on a driver’suser device, e.g., a smartphone, to collect drive data as the driver isdriving. The pre-license driver application may then later present thedrive data to the driver so that he/she can learn about their drivingskills and improve their driving skills. The pre-license driverapplication may also present coaching information to educate the driveron how to improve. In some cases, the pre-license driver application maycause the driver’s user device to output audible coaching informationthereby performing similar coaching functions that the pre-license coachapplication causes the passenger’s user device to perform.

Additionally, a pre-license vehicle application may execute on avehicle’s computing device to collect data about a drive as well. Thepre-license vehicle application may allow the vehicle’s computing deviceto communicate with the driver’s user device and/or passenger’s userdevice. In particular, the pre-license vehicle application may transmitdata collected during a drive to the driver’s user device and/orpassenger’s user device. In some cases, the pre-license vehicleapplication may cause the vehicle’s computing device to perform the samecoaching functions that the pre-license coach application causes thepassenger’s user device to perform. Thus, the vehicle’s computing devicemay present coaching information to the passenger that the passenger mayuse to teach the driver. Still, in some cases, the pre-license vehicleapplication may cause the vehicle’s computing device to present thecoaching information directly to the driver.

Although a suite of pre-license applications (e.g., pre-license driverapplication, pre-license coach application, and pre-license vehicleapplication) are described above, these applications may be implementedas a single application. That is, a single application, herein referredto as the pre-license program, may be executed on various computingdevices which may perform particular modules of the pre-license program.As such, aspects of the disclosure may be implemented by a one of or anycombination of various computing devices (e.g., a driver’s computingdevice, passenger’s computing device, or vehicle’s computing device)operating in tandem.

In the following description of the various embodiments of thedisclosure, reference is made to the accompanying drawings, which form apart hereof, and in which is shown by way of illustration, variousembodiments in which the disclosure may be practiced. It is to beunderstood that other embodiments may be utilized and structural andfunctional modifications may be made. Furthermore, the disclosures ofeach of the following patent applications are incorporated by referenceherein in their entirety: U.S. Pat. Application No. 13/216,849, filedAug. 24, 2011, entitled “In Vehicle Driver Feedback Device;” and theU.S. Pat. Application No. 13/826,429, filed Mar. 14, 2013, entitled“Interactive Driver Development.”

In one or more arrangements, teachings of the present disclosure may beimplemented with a computing device. FIG. 1 illustrates a block diagramof an example computing device 100 that may be used according to anillustrative embodiment of the present disclosure. The computing device100 may be similar to any available computing device, such as a personalcomputer (e.g., a desktop computer), server, laptop computer, notebook,tablet, smartphone, etc. The computing device 100 may have a pre-licensemanager 101 for performing methods and executing instructions of thepre-license program described herein. The pre-license manager 101 may beimplemented with a processor and memory and/or ASIC. Throughout thisdisclosure, the pre-license manager 101 may be used to reference acombination of the processor and memory storing instructions executed bythat processor and/or the instructions themselves. The processor of thepre-license manager 101 may operate in addition to or in conjunctionwith another processor 103 of the computing device 100. Both thepre-license manager 101 and the processor 103 may be capable ofcontrolling operations of the computing device 100 and its associatedcomponents, including RAM 105, ROM 107, an input/output (I/O) module109, a network interface 111, and memory 113.

The I/O module 109 may be configured to be connected to an input device115, such as a microphone, keypad, keyboard, touchscreen, and/or stylusthrough which a user of the computing device 100 may provide input data.The I/O module 109 may also be configured to be connected to a displaydevice 117, such as a monitor, television, touchscreen, etc., and mayinclude a graphics card. The display device 117 and input device 115 areshown as separate elements from the computing device 100, however, theymay be within the same structure. Using the input device 115, systemadministrators may update various aspects of the pre-license program,such as rules for detecting drive events and what coaching informationto provide in response to which drive events, described in furtherdetail below. On some computing devices 100, the input device 115 may beoperated by users to interact with the pre-license program, includingproviding user information, assessing a driver’s performance, reviewinga driver’s performance, etc., as described in further detail below.Meanwhile, the display device 117 may assist the system administratorsand users to confirm/appreciate their inputs.

The memory 113 may be any computer readable medium for storing computerexecutable instructions (e.g., software). The instructions stored withinmemory 113 may enable the computing device 100 to perform variousfunctions. For example, memory 113 may store software used by thecomputing device 100, such as an operating system 119 and applicationprograms 121, and may include an associated database 123.

The network interface 111 allows the computing device 100 to connect toand communicate with a network 130. The network 130 may be any type ofnetwork, including a local area network (LAN) and/or a wide area network(WAN), such as the Internet. Through the network 130, the computingdevice 100 may communicate with one or more computing devices 140, suchas laptops, notebooks, smartphones, personal computers, servers, etc.The computing devices 140 may also be configured in the same manner ascomputing device 100. In some embodiments the computing device 100 maybe connected to the computing devices 140 to form a “cloud” computingenvironment or peer-to-peer network in which data resides on onecomputing device and links directly or indirectly to other computingdevices which may hold additional or complimentary data.

The network interface 111 may connect to the network 130 viacommunication lines, such as coaxial cable, fiber optic cable, etc. orwirelessly using a cellular backhaul or a wireless standard, such asIEEE 802.11, IEEE 802.15, IEEE 802.16 etc. In some embodiments, thenetwork interface may include a modem. Further, the network interface111 may use various protocols, including TCP/IP, Ethernet, File TransferProtocol (FTP), Hypertext Transfer Protocol (HTTP), etc., to communicatewith other computing devices 140.

The computing device 100 may be a mobile device (e.g., a smartphone),and thus, may also include various other components, such as a battery,speaker, and antennas (not shown).

The pre-license program disclosed herein may be implemented on acomputing device 100 used in various network environments. FIG. 2illustrates an example network environment 200 for implementing methodsaccording to the present disclosure. As shown in FIG. 2 , the networkenvironment 200 may include a network 201 configured to connect one ormore administrative computing devices 100 a, one or more studentcomputing devices 100 b, one or more coach computing devices 100 c, andone or more vehicle computing devices 100 v. The network 201 may alsoprovide a path for connecting to application servers 203. The network201 may be any type of network, like the network 130 described above. Inparticular, the network 201 may include a cellular network and itscomponents, such as base stations, cell towers, etc. The networkenvironment 200 may include access points 205 to extend the network 201to reach mobile computing devices. The access points 205 may includecellular network components (e.g., cell towers, base stations, etc.),global positions system components (e.g., antennas, satellites, etc.),and other wireless access components (e.g., routers) for connecting thestudent computing devices 100 b, coach computing devices 100 c, and/orvehicle computing devices 100 v to the network 201. As such, through thenetwork 200, the student computing devices 100 b, coach computingdevices 100 c, and/or vehicle computing devices 100 v may communicatewith application servers 203 to obtain various information, such ascoaching information, driving statistics, maps, the time of day, weatherinformation, traffic information, position information, softwareupdates, etc.

In some embodiments, one or more of the application servers 203 may beconfigured to provide a service that receives user drive data so thatusers can review their drive data. For example, an application server203 may host a website that users can visit to see their drive data andpossibly the drive data of others. In some examples, the drive data of agroup of students (e.g., students in the same driving school) may begrouped together. An application server 203 may provide a webpage thatranks students within their group (e.g., driving school) and/or thatranks groups (e.g., driving schools) based on the performance of theirstudents. Coaches may also access this service to see what skills oftheir students should get more attention.

Referring to FIG. 2 , the administrative computing device 100 a may beconfigured to generate, edit, manage, and deliver the suite ofpre-license applications (e.g., pre-license driver application,pre-license coach application, pre-license vehicle application, etc.) orpre-license program. The suite of pre-license applications orpre-license program may be downloaded, installed, and executed on one ormore student computing devices 100 b, coach computing devices 100 c,and/or vehicle computing devices 100 v. In some examples, theadministrative computing device 100 a may execute the pre-licenseprogram in tandem with a student computing device 100 b, coach computingdevice 100 c, and/or vehicle computing device 100 v. The server-sidecomputing device 100 a may, for example, render graphics and webpageswhich are then streamed to these other computing devices 100 b, 100 c,100 v which may be used to supply user inputs so that the user mayinteract with the pre-license program. As shown in FIG. 2 , the studentcomputing device 100 b and coach computing device 100 c may be aportable user device, such as a smartphone, tablet, laptop, etc., that auser may take with them into a vehicle 207. Although FIG. 2 shows thevehicle 207 as being a car, the vehicle 207 may be a motorcycle, truck,bus, boat, plane, etc.

When the student computing device 100 b and coach computing device 100 care inside or near the vehicle 207, they may communicate with thevehicle computing device 100 v. In some examples, the vehicle computingdevice 100 v may include the vehicle’s on-board diagnostic (OBD) system.The student computing device 100 b and/or coach computing device 100 cmay communicate with the vehicle computing device 100 v via a wiredconnection (e.g., USB, OBD II connector, etc.) or a wireless connection(e.g., Bluetooth).

FIG. 2 includes an exploded view of the inside of the vehicle 207 toillustrate example operating positions and lines of communication of thevarious computing devices. As shown, the driver, also referred to as thestudent since the driver may be learning to drive, may position his/herphone (an example of a student computing device 100 b) on a centerconsole or other flat surface within the vehicle 207. In some cases, thestudent computing device 100 b may be positioned out of reach and/orview of the driver during the drive as the driver may be expected tofocus on driving and not on using the student computing device 100 b.Meanwhile, a passenger (e.g., a parent, coach, etc.) of the vehicle 207,who intends to teach the student how to drive or how to improve atdriving, may hold or otherwise position his/her phone (an example of acoach computing device 100 c) so that he/she may view its screen, hearaudio from its microphone, and/or provide user inputs via its keypad,buttons, etc. Thus, when the coach computing device 100 c presentscoaching information, the passenger (or coach) may provide verbalfeedback to the student about his/her driving.

In some cases, instead of, or in addition to, receiving coachinginformation through their coach computing device 100 c, the passengermight receive the coaching information from the vehicle computing device100 v via a display of the vehicle 207. The vehicle computing device 100c may be installed behind the dashboard of a vehicle 207 (or elsewherein the vehicle). The driver or passenger may interface with the vehiclecomputing device 100 v by operating buttons on the dashboard, touching adisplay on the dashboard, or providing verbal commands.

FIG. 3 illustrates a flow diagram for an example process in accordancewith aspects of the present disclosure. More specifically, FIG. 3illustrates a plurality of steps a coach computing device 100 c mayperform to provide a passenger with coaching information that thepassenger may use to give advice to a student driver while driving. Oneor more of the steps of FIG. 3 may be performed as a result of executingthe pre-license program on the coach computing device 100 c.

As shown in FIG. 3 , the process may begin with a step of configuringthe coach computing device 100 c in step 301. Configuring the coachcomputing device 100 c may include downloading and installing thepre-license program. Further, it may include entering information aboutthe driver and/or coach. For example, a user may enter the age of thedriver, the gender of the driver, the state the driver has a driver’spermit in (or the state that the driver intends to get his/her licensein), a date in which the user received his/her driver’s permit, a datethe user expects to take a driver’s test to receive a full license, etc.With regards to the coach, the user may enter the coach’s age, coach’sgender, coach’s driver license number, coach’s insurance policy number,etc. At step 301, the user may also enter information about the vehicle,such as the make, model, and year of the vehicle.

Additionally, configuration may include registering the coach computingdevice 100 c with an application server 203 so that the coach computingdevice 100 c may receive data to carry out certain aspects of thecoaching process. For example, the coach computing device 100 c mayregister with an application server 203 to receive coaching informationor statistics related to other drivers and coaches so that driving andcoaching performance can be compared to others. Registration may includecreating a username and password to be associated with the coach and/oran account (e.g., insurance account) of the coach. Such registration maybe performed through a web portal, which may be accessed through thepre-license program. The registration process may also result increating a web page, hosted by the administrative computing device 100 aor application server 203, to which the coach computing device 100 c mayupload information, such as coaching information, and pictures.

At step 302, the coach computing device 100 c may synchronize with thestudent computing device 100 b and/or vehicle computing device 100 d.Synchronization may include establishing a connection (e.g., a Bluetoothconnection) for communicating information between the devices. In somecases, synchronization may also include establishing a reference time sothat data on one device may be correlated with data on another device.For example, synchronization may include establishing a reference timeso that the time at which a driver made a left turn can be correlatedwith the time at which a coach told the user to look out for othervehicles or with the time at which the vehicle’s left turn signal wasactivated.

In step 303, the coach computing device 100 c may present pre-drivecoaching information. This may include displaying a checklist of thingsa student should do before beginning to drive. For example, thechecklist may include checking/adjusting mirrors, buckling a seatbelt,reminding passengers to buckle seatbelts, checking tires, checking oil,etc. The checklist may be interactive so that the coach may check offitems in the checklist as the driver performs them. The coach computingdevice 100 c could also connect with the vehicle computing device 100 vor another computing device to receive data regarding whether checklistitems have been completed, and have those items automatically checkedoff if completed.

Additionally, the pre-drive coaching information may include advice forthe driver regarding an upcoming drive. For example, the pre-drivecoaching information may include advising the driver to focus on brakingearlier or going through turns at slower speeds. In some cases, thepre-drive coaching information may be customized for the particulardriver based on the driver’s driving history. For example, if it isdetermined that the driver previously had difficulty braking smoothly,the pre-driving coaching information may inform the coach to remind thedriver that the driver should focus on braking smoothly. Or, if thedriver’s past performances indicate that he/she has done well withturning at slow speeds, the pre-driving information may suggest advisingthe driver to work on turning at higher speeds in order to advance thedriver’s skills.

Step 304 may include prompting the user to determine if the user wouldlike a suggested route. Some coaches may desire assistance pickingroutes suited for the driver or routes that give the driver variousdriving experiences. For example, a coach may want to take a route thathas less traffic so that the student can practice without the addedpressure of other drivers. Or, a coach might want the student topractice driving in certain conditions, e.g., driving on a highway, ifthe student has not had much experience in such conditions. Whenprompting the user at step 304, the pre-license program may give theuser a number of options for the user to select (e.g., less traffic,slower speeds, total drive time, etc.) that the pre-license program mayconsider when mapping a suggested route.

If the coach agrees to receive a suggested route (Yes at 304), thepre-license program may map one or more suggested routes at step 305. Inmapping suggested routes, the pre-license program may consider thedriver’s history. For example, the pre-license program may determinethat the driver is ready to practice driving on the highway, and maysuggest a route that includes driving on a highway. Or, the pre-licenseprogram may determine that the driver needs more practice braking, andthus, may suggest a route that would require more stops. To aid insuggesting routes, the pre-license program may evaluate maps from thirdparty entities (e.g., Google Maps, Yahoo Maps, etc.). For example, ifthe pre-license program determines that the user should practice mergingonto a highway, the pre-license program may analyze map data todetermine where a nearby highway merger exists.

In step 306, the coach computing device 100 c may determine whether tostart collecting data for a drive. A user may indicate that a drive isstarting by pressing a button or otherwise making a user selection onthe coach computing device 100 c to indicate that the drive is starting.In some cases, step 306 may require the user to perform a calibrationprocess in which the user places the phone on a flat surface in astable, non-moving position. The coach computing device 100 c may thenestablish a reference orientation and speed so that it can begincollecting data using its GPS, 3-axis accelerometer, gyroscope, etc.

The pre-license program may begin to collect drive data, such as vehicletelematics data, at step 307. In particular, the pre-license program mayread data from the coach computing device’s 100 c 3-axis accelerometer,gyroscope, and/or GPS at step 307 to collect some types of drive data,such as acceleration, deceleration, g-force, speed, etc. For example,the 3-axis accelerometer of the coach computing device 100 c may outputthe value of acceleration in an x-direction that the pre-license programmay equate to an acceleration of the vehicle in a forward direction.Thus, pre-license program may use capabilities of the coach computingdevice 100 c to get drive data. Notably, drive data is not limited totypes of movement data or vehicle telematics data, and may include anytype of data related to the drive, such as time of day information, dayor night information, weather conditions during the drive, roadconditions (e.g., side road or highway), traffic conditions (e.g.,light, medium, heavy, etc.), position information, etc. Some types ofdrive data, e.g., time of day, may be received from the coach computingdevice 100 c, while other types may be received from one or moreapplication servers 203 in communication with the coach computing device100 c.

Additionally, or alternatively, the pre-license program may collectdrive data from the student computing device 100 b. Specifically, datafrom a 3-axis accelerometer, gyroscope, and/or GPS of a studentcomputing device 100 b may be transmitted from the student computingdevice 100 c to the coach computing device 100 c. Therefore, the coachcomputing device 100 c might not use its own components to get the drivedata. For example, if the user (coach) of the coach computing device 100c is moving the coach computing device 100 c because, e.g., the coach isreading coaching information, talking on the phone, etc., the coachcomputing device 100 c may choose to use drive data from the studentcomputing device 100 b rather than its own drive data. However, in somecases, the pre-license program executing on the coach computing device100 c may consider drive data from both the coach computing device 100 cand the student computing device 100 b. For example, the pre-licenseprogram may compare the data generated by a 3-axis accelerometer of thesame device, that is, the coach computing device 100 c, with datagenerated by a 3-axis accelerometer of a student computing device 100 bto determine more accurate drive data. In some examples, the coachcomputing device 100 c may determine to average or otherwise merge theresults.

Further, in addition to, or instead of, receiving drive data from thestudent computing device 100 b, the coach computing device 100 c mayreceive drive data, including, e.g., vehicle telematics data, from thevehicle computing device 100 v. Specifically, the pre-license programmay cause the coach computing device 100 c to query the vehiclecomputing device 100 v of the vehicle 207 that it is inside to provideit with drive data. The vehicle computing device 100 v may then transmitdrive data that it has collected. Some vehicles may be equipped withsensors, 3-axis accelerometers, gyroscopes, GPS, etc. that provide themwith drive data that can be used by the pre-license program fordetecting events. The coach computing device 100 c may receive drivedata from the vehicle computing device 100 v via a wireless connection(e.g., Bluetooth) or a wired connection (e.g., OBD II connector).

As the coach computing device 100 c receives/collects drive data, thepre-license program may analyze the data to detect drive events at step308. A variety of drive events may be detected at step 308. The driveevents may be related to driving maneuvers (e.g., braking, turning,accelerating, decelerating, swerving, changing lanes, parking,tailgating, etc.). For example, vehicle telematics data may be analyzedto detect some types of drive events. Further, some drive events may berelated to driving characteristics (e.g., driving speed, a level ofalertness of driver, distractions during driving, etc.). For example,the pre-license program may detect that the driver is speeding based onspeed limit information. In another example, cameras monitoring thedriver’s eyes or head position may provide information that thepre-license program may use to detect that the driver is not focusing onthe road. Yet another example may include analyzing setting changes(e.g., changing a radio station or volume, answering a phone, sending atext message, etc.), to detect a drive event indicating that the drivermay have been distracted during the drive. Additionally, some driveevents may be related to driving conditions (e.g., time of day, weatherconditions, road conditions, traffic conditions, etc.). For example, thepre-license program may use weather information obtained during thedrive to determine that it is raining during the drive.

In particular, in step 308, the pre-license program may detect whether abrake event occurred based on data collected at step 307. Specifically,the pre-license program may use one or more algorithms to analyze thedrive data to detect a brake event. For example, braking may beassociated with deceleration data, and therefore, by analyzing suchdata, the pre-license program may determine whether a brake event hasoccurred. More specifically, a braking event may be detected ifdeceleration data indicates a threshold change in speed was exceeded(e.g., the vehicle speed decreased by at least 20 mph) and a minimumspeed threshold was reached (e.g., the vehicle slowed down to 1 mph).Other algorithms may also be used to detect a brake event.

The pre-license program may also detect whether a turn event occurred atstep 308. Specifically, the pre-license program may use one or morealgorithms to analyze the data to detect a turn event. For example,turning may be associated with g-force data, and therefore, by analyzingsuch data, the pre-license program may determine whether a turn eventhas occurred. More specifically, a turning event may be detected if theg-force reaches a particular level (e.g., 1 g) and maintains that levelfor a particular period of time (e.g., 2 seconds). Other algorithms mayalso be used to detect a turn event.

In response to detecting an event, such as a brake event or turn event,the pre-license program may cause the coach computing device 100 c topresent coaching information at step 309. Presenting the coachinginformation may include displaying the coaching information on a screen(or display) of the coach computing device 100 c and/or outputting anaudible message via the coach computing device 100 c. The coachinginformation presented may be related to the detected event. For example,if a brake event was detected, the coaching information may includeadvice to the coach to tell the driver how he/she might improvebreaking. Accordingly, coaching information may be presented to thecoach in real-time as the user is driving, so that the coach mayinstruct the student in real-time.

In preparing the coaching information, the pre-license program maycompare the drive data of the drive event to standards (which may changedepending on an experience or level of the driver) for the drive event.For example, the pre-license program may compare drive data for a turnevent with standards developed for what the drive data for a turn eventshould be. Based on how similar the drive data for the driver’s driveevent compares against the standard data for that drive event, thepre-license program may recommend praising the driver. For example, ifthe driver made a turn that the pre-license program determined waswithin some threshold of ideal drive data for a turn, the pre-licenseprogram may prepare coaching information that suggests praising thedriver for his/her turn.

The coaching information presented at step 309 may also depend on thedriver’s skill level/experience. That is, for more advanced drivers, thecoaching information may include more details. Accordingly, as thedriving skills of a student progress, the coaching information maybecome more advanced and may focus on the finer points of driving. Thepre-license program may assess the driver’s skill/experience based onpast drive data. In particular, the pre-license program may consider thenumber of minutes the student has driven, the number of drive events thestudent performed, and/or how well the student performed drive events.Notably, the pre-license program may determine that the student is moreadept in some areas of driving than others. For example, the pre-licenseprogram may determine that a student is more advanced/experienced atbrake events than turn events, and therefore, the coaching informationit suggests for that student may be more detailed for brake events thanturn events.

The coaching information may also be based on driving characteristicsand driving conditions. For example, if it is detected that the driveris not focusing on the road, the coaching information may provide advicethat the driver should look at the road. The coaching information mayalso include statistics, such as a percentage of accidents caused bydrivers not looking at the road, so that the coach may inform the driverof the potential consequences of the driver’s behavior. In anotherexample, if it is detected that the driver is driving in the rain, thecoaching information may include providing advice for how to drive inthe rain, such as how to avoid hydroplaning or what to do in the eventof hydroplaning.

In addition to presenting the coaching information to the coach, thepre-license program may cause the coach computing device 100 c toprovide audio feedback that the driver can hear. This audio feedback maybe an audible message corresponding to the coaching information, inwhich case the coach might not have to provide the instructions.Alternatively, the audio feedback may simply provide various sounds(e.g., beeps) that the driver may recognize as being a positive ornegative response to their driving performance.

FIG. 4A illustrates an example of coaching information that thepre-license program may present on the coach computing device 100 c. Asshown, the coaching information may include a driving tip for the coachto explain to the student. In the example of FIG. 4A, the driving tipmay include the message “brake before, not during, a turn.” This tip maybe generated based on the drive data collected for a recently detectedturn event. Here, based on the drive data, the pre-license program mayhave determined that the driver did not brake enough before the turn,and instead, used the brake too much in the turn. Using the results ofthis determination, the pre-license program may then generate thecoaching information and present it to the coach as shown.

FIG. 4B illustrates another example of coaching information that thepre-license program may present on the coach computing device 100 c. Asshown, the coaching information may include a coaching suggestion forthe coach. In the example of FIG. 4B, the driving suggestion may includethe message “consider trying the freeway soon.” This driving suggestionmay therefore inform the coach that the student is ready to, or shouldattempt to, drive on a freeway. Such a driving suggestion may begenerated based on the collected drive data. For example, if thecollected drive data indicates that the user is braking and/or turningwell at slow speeds, the driving suggestion may be to try the freeway.The pre-license program may also consider how much time the driver hasspent driving in determining what suggestions to make. Moreover, thepre-license program may review past driving experiences when generatingsuggestions. For example, the pre-license program may check a drivinghistory and determine that the user has not yet driven on a freeway, andthen prepare the driving suggestion that the student should considerdriving on the freeway. The pre-license program may also usecrowdsourced data (e.g., data collected across all users or some subsetof users (e.g., in a geographic area, having a same age, a sameexperience level, etc.) to determine what driving suggestions togenerate. For example, the pre-license program may determine that mostusers start driving on the freeway by month 4, and thus, suggest drivingon the freeway to users who have not done so by month 4.

Returning to FIG. 3 , step 310 may include detecting a potential futuredrive event, that is, a drive event that has not yet occurred. Thepre-license program may predict a future drive event using mapinformation and position information (e.g., GPS data). In cases wherethe pre-license program has suggested a route or knows of a route, thepre-license program may determine that certain drive events are comingup. For example, the pre-license program may analyze a route and thelocation of the vehicle along that route to determine that a turn eventis likely to occur soon. Or, the pre-license program may analyze theroute to identify a stop sign that the vehicle is approaching, andtherefore, may determine that a brake event is likely to occur soon.

When a future drive event is detected, the pre-license program mayprovide coaching information related to the future event to the coachcomputing device 100 c in advance of the future drive event. That is, atstep 311, the pre-license program may present coaching information fordrive events that have not yet occurred, but are expected to occur. Thecoach may use this coaching information to provide instruction to thedriver for handling the future drive event. The pre-license program mayalso inform the coach of a timing for providing the driver withinstructions. For example, the pre-license program may determine thatthe vehicle is located 100 feet from a stop sign, and therefore, mayrecommend that the coach provide instructions to tell the driver tostart slowing down at this point. The pre-license program may alsofactor in the speed of the vehicle when determining the ideal time thatthe instruction should be given. It should be understood that thecoaching information could be based on a combination of previouslydetected drive events/patterns/behaviors and future drive events. Forexample, knowing that a driver’s last left turn(s) was poorly performedand that a left turn is coming up, the coaching information may bespecific to how the upcoming left turn could be improved.

In some embodiments, when, or after, the coach computing device 100 cpresents coaching information, the pre-license program may also promptthe coach for user input related to the coaching information. Forexample, the pre-license program may prompt the coach to provide inputas to whether or not the coaching information was provided to thestudent or otherwise accepted. In some cases, coaches might decide notto provide the coaching information to the student, and instead remainsilent or give their own instructions. In such cases, the coach mayprovide user inputs indicating that it rejected or did not provide thecoaching information to the student. On the other hand, the coach maychoose to provide the coaching information to the student and mayprovide an input indicating that the coaching information was given.

Moreover, when, or after, presenting the coaching information and/orprompting the coach for user input regarding whether the coachinginformation was given, the pre-license program may also prompt the coachfor input as to whether or not the student followed the coach’s advice(e.g., performed the action recommended by the coaching information).The coach may provide an input indicating whether they believe thedriver followed the advice or did not follow the advice (e.g., ignoredthe advice or failed to follow the advice). Accordingly, the pre-licenseprogram may allow the coach to subjectively score, rate, or otherwisegrade the driver’s performance and/or ability to follow the coachingadvice. This collected information could be used to modify what futureadvice is given to the coach. The pre-license program may look at thecollected information across all coaches or a subset of coaches todetermine which advice is more effective and/or well-received and advicemay be prioritized or removed accordingly. The advice may also becrowdsourced. For example, coaches may contribute advice that theyprovided which was well-received or effective. The advice could then becirculated for use by other coaches and subsequent ratings coulddetermine whether the advice is incorporated, strongly reinforced, orremoved.

In step 312, the pre-license program monitors user inputs to check foruser requests. At times, a coach may want to request particular coachinginformation whether or not the user has performed a related drive eventor will perform a related drive event in the near future. That is, thecoach may want to provide instructions for a particular drive event eventhough the pre-license program has not detected that event. Accordingly,the coach may request specific coaching information by navigatingthrough predefined categories of coaching information and/or performinga keyword search. Based on the user’s request, the pre-license programmay retrieve the appropriate coaching information at step 313.

Step 314 may include determining whether the drive has ended. In somecases, the pre-license program may automatically determine that thedrive has ended if the car has not moved for a predetermined period oftime (e.g., 10 minutes). On the other hand, the pre-license program mayrely on the user to inform it that the drive has ended. Notably, as longas the drive continues, the pre-license program may continue to performsteps 307-313. Moreover, it should be understood that these steps do nothave to be performed in the order shown. For example, the pre-licenseprogram may detect a future drive event before it detects a drive eventthat has already occurred. Further, the pre-license program may presentcoaching information for multiple past drive events before presentingcoaching information for a future drive event. Also, user requests forparticular coaching information may be received and handled at any timeduring the drive. In short, the order that steps 307-313 are performedwill depend on the events, characteristics, or other features of theparticular drive and the user inputs during that drive.

After the drive is over, at step 315, the coach computing device 100 cmay exchange drive data with other computing devices, such as thestudent computing device 100 b and vehicle computing device 100 v. Forexample, the coach computing device 100 c may share the coachinginformation it presented during the drive with the student computingdevice 100 b, so that the student may view the coaching information onhis/her own device. Additionally, or alternatively, the coach computingdevice 100 c may share a recording of the coach’s instructions to thedriver that the coach computing device 100 c recorded using itsmicrophone. Further, the coach computing device 100 c may provide areport of the inputs that the coach made during the drive. For example,the coach computing device 100 c may provide a report showing whichcoaching information the coach accepted or provided and which coachinginformation the coach rejected or did not provide. Such a report mayalso indicate which coaching advice the coach thought the studentfollowed and which coaching advice the coach thought the student did notfollow. As such, a student computing device 100 b receiving such reportsmay give the student the opportunity to review the coach’s decisions andthoughts about the student’s driving performance. In some embodiments,reports may be broken down by coach so a student may be able to reviewdifferent data for different coaches (e.g., review comments made by momand review comments made by dad). Also, the information gathered fromsuch reports may be used to modify the coaching information provided tocoaches in the future.

In step 315, the coach computing device 100 c may also uploadinformation to an administrative computing device 100 a or applicationserver 203 via the network 201. Such information may include a number ofminutes spent coaching/training the student driver. This information maybe compiled at the administrative computing device 100 a or applicationserver 203 so that statistics reflecting how much time coaches arespending on training student drivers can be generated. Other types ofinformation may be uploaded as well. The coach computing device 100 cmay include a camera, and therefore, may be used to take photographs ofthe student while he/she is driving. The coach computing device 100 ccould also be used to take photographs of various driving events and/orexperiences, such as the student’s first flat tire, first time drivingto the beach, etc. In some embodiments, a photograph may be capturedautomatically depending on driving events, accelerometer data, etc. Forexample, a photograph of a parent’s face may be taken when a driverslams on the brakes. The pre-license program may facilitate posting orsharing these photographs on a webpage hosted by the administrativecomputing device 100 a or application server 203.

Step 316 illustrates that the pre-license program may provide the coachwith coaching history data. The pre-license program may store drive dataand a log of coaching information that it presented to the coach aftereach drive. As the pre-license program is used for a number of drives,the pre-license program may compile the data for each drive to preparean overview of the student’s and/or coach’s performance. For example,the pre-license program may prepare a report showing the coachinginformation that was previously provided on a drive-by-drive basis. Thecoach history data may also show how many minutes the coach has spentteaching the student and/or other students. Further, the coach historydata may provide statistics acquired from other coaches to show thecoach how much time other coaches are spending teaching their students.From such statistical information, coaches may assess themselves anddetermine whether they should be spending more time training theirstudent.

Although FIG. 3 depicts step 316 as the last step, it should beunderstood that the coaching history data may be viewed at any time andthat other steps may be performed after it. In general, FIG. 3illustrates steps in an example order, but the steps may be implementedin various orders. Indeed, the various features and steps may becombined, divided, omitted, and/or augmented in any desired manner,depending on the specific process desired. For example, the pre-licenseprogram may present route suggestions as described with respect to steps304 and 305 during the drive as well. Also, the user could requestcoaching information, as described with respect to step 312, before orafter drives. The processes of the pre-license program should not belimited to the example embodiments described.

FIG. 5 illustrates a flow diagram for an example process in accordancewith aspects of the present disclosure. More specifically, FIG. 5illustrates a plurality of steps a student computing device 100 b mayperform to provide a student with feedback as they learn to drive. Oneor more of the steps of FIG. 5 may be performed as a result of executingthe pre-license program on the student computing device 100 b.

As shown in FIG. 5 , the process may begin with a step of configuringthe student computing device 100 b in step 501. The configuration instep 501 may be performed in a similar manner to the configuration instep 301 of FIG. 3 . That is, the configuration may include calibratingthe student computing device 100 b and registering the student with theadministrative computing device 100 a or an application server 203. Inthe registration process, students may set up a profile for themselves.They may provide their name, age, driver’s permit number, state they aretrying to receive a driver’s license in, etc. Students may also set upprofiles for coaches that they anticipate having (or have had) teachthem to drive. For example, a teenager may set up a profile for each ofhis/her parents so that the teenager can track which parent is givingwhich instructions, which parent is spending more time training theteenager, etc.

Steps 502-506 may be similarly performed on the student computing device100 b in a similar manner that steps 302-306 are performed on the coachcomputing device 100 c. However, on the student computing device 100 b,when the drive is started (Yes at step 506), the student computingdevice 100 b may turn off its display. The pre-license program may causethe student computing device 100 b to turn off its display at step 507so that the student is not distracted by the display. While the user isdriving, the pre-license program might only display a screen on thestudent computing device 100 b that allows the user to stop the drive.That is, the pre-license program executing on the student computingdevice 100 b may determine that coaching information should not bedisplayed while the user is driving.

In some embodiments, the pre-license program may cause certain functionsof the student computing device 100 b to be inoperable while the studentis driving. For example, the pre-license program may preventincoming/outgoing phone calls and text messages (e.g., SMS messages). Asa result, the pre-license program may help reduce the likelihood thatthe student becomes distracted by the student computing device 100 bwhile driving.

At step 508, the pre-license program may cause the student computingdevice 100 b to collect drive data, such as vehicle telematics data.Drive data may be collected from the student computing device 100 b in asimilar manner that drive data is collected from the coach computingdevice 100 c as described above. That is, the pre-license program maycollect drive data from a 3-axis accelerometer, gyroscope, GPS, etc. ofthe student computing device 100 b. Additionally, or alternatively, thepre-license program executing on the student computing device 100 b mayreceive the drive data from the vehicle computing device 100 v and/orthe coach computing device 100 c. Also, at step 509, drive events may bedetected based on the collected drive data. Notably, the pre-licenseprogram may collect drive data and detect drive events without notifyingthe student during the drive so as not to distract the student.

Although FIG. 5 does not show steps for presenting coaching information,in some embodiments, the student computing device 100 b may generate andpresent coaching information. In particular, the student computingdevice 100 b may present audible messages providing the coachinginformation so that the student does not have to rely on the coach forsuch coaching information.

Step 510 illustrates that the student computing device 100 b maytransmit drive data while the student is driving. As described above,the drive data may be collected on the student computing device 100 band transmitted to the coach computing device 100 c, which may use theinformation to present coaching information.

At step 511, the pre-license program may determine whether the studenthas finished a drive. This may include determining that the vehicle hasnot moved for some predetermined period of time (e.g., 2 minutes) orreceiving an indication from the user that the drive has ended (e.g.,the user may press a key on the student computing device 100 bindicating the end of the drive). After the drive, in step 512, thestudent computing device 100 b may exchange data with other devices,such as the administrative computing device 100 a, the coach computingdevice 100 c, and/or vehicle computing device 100 v. For example, thestudent computing device 100 b may send/receive an audio recording ofthe sound in the car during the drive. This recording, therefore, mayinclude the dialogue between the coach and student, including what tipsthe coach gave the student. The student may be able to subsequentlylisten to the audio recording to see what his/her coach said and tocompare it against the coaching information which indicates what thecoach should have said.

In step 513, the pre-license program may store the collected drive dataand information received from other devices on the student computingdevice 100 b. In some cases, this data/information may be transmitted toan administrative computing device 100 a and/or application server 203and stored in association with the student or student computing device100 b.

In step 514, the pre-license program may generate and present reports tothe student. These reports may provide feedback on how the userperformed during the most recent drive and how the user is progressing.This feedback may be presented with graphs, charts, and otherillustrations. The feedback may also be divided into categories toassess various driving skills, such as braking, turning, etc. Thereports may also include tips for improving the student’s drivingskills. Further, the reports may show which goals the user hasaccomplished and which goals remain. The pre-license program maygenerate and provide a checklist of useful drives that a driver shouldcomplete in preparation for a driving test. The pre-license program alsomay include a checklist of skills that are tested during a driving test,so the student can keep track of their preparation for the driving test.For example, if parallel parking is required on a driving test, thepre-license program may keep a record of the number of times the studenthas practiced parallel parking and a score associated with each attempt.The score may be generated by the coach using the coach computing device100 c and transmitted to the student computing device 100 b. Thepre-license program may assist the coach in scoring so that the coachgives consistent scores and progress can be tracked. In some cases, thepre-license program may generate the score itself based on enteredinformation, such as the distance between the car and curb afterparallel parking. The reports may also keep a log of mandatorypre-license driving time. For states that require a certain amount ofdriving time, the pre-license program can keep track of the amount oftime the student has driven, so that it can be determined whether thestudent has met the requirements, or on track to meet the requirements,for the state he/she hopes to obtain a license in.

FIG. 6A illustrates examples of progress reports that the pre-licenseprogram may present on the student computing device 100 b at step 514.As shown, the progress reports may include bar graphs to reflect thestudent’s driving experience/skill in a number of categories. In theexamples of FIG. 6A, the categories in which the student is assessedinclude day driving, night driving, highway driving, scanning ahead,smoothness, total time (e.g., hours) of driving. The values for thecategories may be calculated by the pre-license program based on variousalgorithms using various thresholds.

Some values may be directly proportional to an amount of time drivingunder certain conditions. For example, the value of the night drivingcategory may be a reflection of the number of minutes a user has drivenat night. Whether a student is driving during the night may be based onone or more of the following: a time of the drive, sunrise/sunset times,GPS or other location information, infrared sensor data, light sensordata, light data from a camera, etc. Information regarding whether astudent is driving at night or day may be included within the drive datacollected at step 508. Standards may be established setting forth theideal/recommended amount of time a student should spend driving atnight. Then, the amount of time the student has spent driving at nightmay be compared to these standards to receive a score or percentage asshown.

On the other hand, some values may be determined based on subjectiveand/or objective data collected at step 508. For example, the scanningahead score of FIG. 6A may be based on subjective data entered by acoach via a coach computing device 100 c. The pre-license programrunning on the student computing device 100 b may receive the subjectivescore from the coach and incorporate it into its reports. Meanwhile, thesmoothness score may be based on objective drive data collected in step508. The pre-license program executing on the student computing device100 b may analyze acceleration and deceleration data collected throughthe student computing device 100 b, coach computing device 100 c, and/orvehicle computing device 100 v. Specifically, the pre-license programmay compare such acceleration and deceleration data with predefinedthresholds to determine how smoothly the student is driving. Generally,constant or gradually increasing acceleration and constant or graduallydecreasing deceleration may indicate smooth driving.

FIG. 6A also illustrates that the pre-license program may prescribedifferent levels (e.g., level 1, level 12, etc.) to students as theirskills and experience progress. As a student demonstrates better drivingskills and/or acquires more driving experience (e.g., in terms ofdriving time), the pre-license program may determine that the user hasreached different levels. For example, the pre-license program maydetermine that the student has reached level 2 when the student exceedsa first minimum threshold in a set of categories and reached level 3when the student exceeds a second minimum threshold, higher than thefirst minimum threshold, in the set of categories (which may change). Byprescribing levels to the students, the pre-license program may help theuser appreciate their improvements and incentivize or encourage thestudent to continue to work on their driving skills.

FIG. 6B illustrates examples of additional feedback that the pre-licenseprogram may present on the student computing device 100 b at step 514.As shown, the pre-license program may recognize certain accomplishmentsachieved by the student and may reward the student with badges 601.Additionally, or alternatively, stars, points, or otherrewards/recognition may be provided. Similar to prescribing levels, thepre-license program may prescribe certain badges 601 to highlightcertain student achievements as they the student advances towardsdriving proficiency. For example, the student may receive a “Night Owl”badge if they drive a total of 3 hours in the dark. In another example,the student may receive a “Globe Trotter” badge if they drive for acertain number of miles or for a certain period of time in a singledrive.

FIG. 7 illustrates a flow diagram for an example process in accordancewith aspects of the present disclosure. More specifically, FIG. 7illustrates a plurality of steps a computing device 100 may perform toassist a person in learning to drive and/or preparing for a driver’slicense examination, which may include a driving and/or writtenportions. The computing device 100 that performs the steps of FIG. 7 maybe a student computing device 100 b (e.g., a teenager’s smartphone), acoach computing device 100 c (e.g., a parent’s smartphone), and/or avehicle computing device 100 v (e.g., a computer of a vehicle 207). Oneor more of the steps of FIG. 7 may be performed as a result of executinga pre-license program on the computing device 100.

As shown in FIG. 7 , the process may begin with a step of configuringthe computing device 100 in step 701. Configuring the computing device100 may include obtaining (e.g., downloading) the pre-license programand installing the pre-license program on the computing device 100. As aresult of configuring at step 701, the computing device 100 may providea path (e.g., shortcut) to load the pre-license program. For example,the computing device 100 may add an icon or other graphic to a screenprovided by an operating system of the computing device 100, so that auser of the computing device 100 may access the pre-license program.

In step 703, a user may register to use the pre-license program.Registration may be performed the first time the pre-license program isloaded after being installed on a particular computing device 100.Registration may include agreeing to terms and conditions of a softwarelicense to use the pre-license program. Registration may also includecollecting and storing information identifying the user and/or some usersettings.

The pre-license program may cause the computing device 100 to displayone or more screens for performing registration. FIGS. 8A-8K illustrateexample user interfaces, including registration screens that may beprovided in step 703. In some embodiments, the user interfaces of FIGS.8A-8K may be presented in order such that FIG. 8A may be displayedfirst, followed by FIG. 8B, followed by FIG. 8C, and so on until FIG. 8Kis displayed. In other embodiments, the order may vary. For example, theorder may vary depending on the user inputs received. Also, one or moreof the interfaces of FIGS. 8A-8K might not exist and/or additionalinterfaces may be presented.

As shown in FIGS. 8A and 8B, the user interfaces may allow a user toenter user information, such as a username, email address, and/orpassword. Further, as shown in FIGS. 8C-8D, the user interfaces mayallow a user to designate whether he or she is a coach/parent orstudent/teen. In some embodiments, a user may be required to providecertain information and/or identify oneself as a coach/parent orstudent/teen in order to complete registration. For example, as shown inFIGS. 8D and 8E, a username, password, email address, and/or parent/teen(or coach/student) designation may be required before an option (e.g.,next button) to proceed with registration is activated/enabled.

As illustrated in FIG. 8F, in some embodiments, two or more users may berequired to register before certain features (any set of the featuresdescribed herein) of the pre-license program may be accessed or used.For example, the pre-license program may require that a parent/coach andteen/student both register before the pre-license program providesdriving tips. A parent/coach and teen/student may perform registrationin sequence using the same computing device 100. Alternatively, aparent/coach and teen/student may perform registration simultaneously orasynchronously using two different devices that may synchronize uponcompletion of the registration process at step 703. For example, aparent/coach may use a coaching device 100 c to register and ateen/student may use a student computing device 100 b to register, andthe coaching device 100 c and student computing device 100 b mayexchange registration information after registration is complete. Theregistration information may be exchanged through a near fieldcommunication system or a wide area network, such as the Internet.

FIGS. 8G-8K illustrate further information that may be collected duringregistration at step 703. For example, FIG. 8H illustrates that the user(e.g., parent/coach or teen/student) may enter an estimated licensedate. The estimated license data may be a date that the user expects orhopes the teen/student will take her driver’s test. In some examples,the estimated license date may correspond to the teen’s/student’sbirthday as that may be the earliest time the teen/student is eligibleto take the driver’s test. FIG. 8H also illustrates that a user mayenter an estimate of the number of hours a student/teen has drivenalready by the time of registration. Some teens/students may have priordriving experience, and thus, may begin at higher levels (describedherein), held to a higher standard, and/or be given more advanceddriving tips (described herein).

Further, different interfaces may be provided (e.g., displayed) forregistering different users. For example, some registration screens maybe provided to parents/coaches only. For example, the user interfaces ofFIGS. 8G-8K may be provided to parents/coaches only.

When registration is complete, the pre-license program may associate aparent/coach with one or more teens/students. This association may bestored locally (e.g., on the computing device 100 executing thepre-license program) and/or remotely (e.g., on an application server203). Also, upon completion of registration, the pre-license program maycause the computing device 100 to send information obtained during theregistration process to an application server 203.

In step 705, a user may log-in to the pre-license program. Logging-inmay occur automatically after registration is complete or may beperformed at a later time (e.g., when a user selects the pre-licenseprogram). The pre-license program may provide a state machine fordetermining and controlling whether a user is logged-in or not. Thepre-license program may operate in a logged-in mode (or log-in state)when the user is logged-in or a logged-out mode (or log-out state) whenthe user is logged-out.

The pre-license program may cause the computing device 100 to presentone or more screens that a user may access to log-in. FIGS. 9A-9Cillustrate example user interfaces, including log-in screen that may beprovided in step 705. As shown in FIG. 9A, an initial log-in screen mayprovide two options (e.g., virtual buttons) for a user to select. Forexample, the user may select whether he/she is a teen/student orparent/coach. FIG. 9B illustrates an example, where the user selects anoption that indicates the user is a parent or coach. FIG. 9C illustratesthat a user interface may be displayed to prompt the user for a passwordto log-in. If a user selects the option indicating that she is a parentor coach, the user may be required to enter a corresponding passwordidentifying the user as the parent or coach. On the other hand, if auser selects the option indicating that she is a teen or student, theuser may be required to enter a corresponding password identifying theuser as the teen or student. Still, in some embodiments, a password mayonly be required for one or the other. For example, a password may onlybe required for a parent or coach. As such, a teen or student may beprevented from scoring themselves or performing other actions that onlya parent or coach may be permitted to perform.

Step 705 may also include confirming whether the user supplied passwordmatches a previously acquired password. In other words, step 705 mayalso include authenticating a user. The pre-license program may comparea password entered through a log-in screen with a password previouslyentered through a registration screen to determine whether there is amatch. In some embodiments, the previously entered password may bestored remotely (e.g., in an application server 203), and thus, thepre-license program may request and receive the password information aspart of the comparison in step 705. Alternatively, the comparison may beperformed in the cloud or in a backend system (e.g., at the applicationserver 203) and the pre-license program may receive the results of thecomparison to determine whether to authenticate the user.

In some embodiments, a single instance of the pre-license program maysupport multiple user profiles for multiple parents/coaches and/ormultiple teens/students. For example, two parents may share a computingdevice 100 (e.g., tablet, smartphone, etc.) running a single instance ofthe pre-license program, and each parent may be able to use their ownpassword to log-in to their own version of the program having their ownsettings. Accordingly, authentication performed in step 705 may includedetermining whether an entered password matches any one of a group ofpasswords. Further, step 705 may include logging-in the user based onthe authenticated password so that the pre-license program is customizedfor the user (e.g., so that user specific settings and/or a user profileare implemented by the pre-license program).

After a user successfully logs-in at step 705, a user interface,including a menu screen, may be provided at step 707. The pre-licenseprogram may cause the computing device 100 to provide a user interface,including a menu screen, on a display coupled to the computing device100. For example, the pre-license program may cause a smartphone todisplay a menu screen on a screen of the smartphone. In someembodiments, there may be more than one menu screen. The pre-licenseprogram may determine which of the multiple menu screens to displaybased on various factors, such as the last menu screen displayed,default settings, or user defined settings.

FIGS. 10, 11, and 12 illustrate example user interfaces, havingdifferent menu screens that may be provided at step 707. FIG. 10illustrates an example of a calendar screen, while FIGS. 11 and 12illustrate a number of examples of progress circle screens.

Referring to FIG. 10 , the calendar screen 1000 may include a calendarsection displaying a calendar. The calendar may be displayed with amulti-week view (e.g., 5 week view) as shown in FIG. 10 or any otherview, such as a daily, weekly, bi-weekly, monthly, or quarterly view.When the calendar is not in the daily view, the calendar screen 1000 mayindicate the current date (e.g., present date) by highlighting orotherwise marking the current day within the calendar. For example, inFIG. 10 , the pre-license program indicates that March 25^(th) is thecurrent day.

The calendar may also be color coded. For example, blocks representingdays in the calendar may be marked (e.g., shaded/filled) with certaincolors indicating a skill level the teen/student is expected to be at onthat date. For example, the blocks in the calendar may be marked withdifferent colors depending on which of a set of levels within thepre-license program the teen/student is expected or projected to be aton that date. For example, if the teen/student is expected (orprojected) to be at level one on March 20^(th), the block in thecalendar representing March 20^(th) may be shaded (or filled, outlined,etc.) with the color yellow corresponding to level one. In comparison,if the teen/student is expected (or projected) to be at level two onApril 10^(th), the block in the calendar representing April 10^(th) maybe shaded (or filled, outlined, etc.) with the color green correspondingto level two.

Further, in some embodiments, the color of the outline or highlightindicating the current day may indicate the skill level of theteen/student at that time. For example, if the user is at a skill levelcorresponding to level one, the highlight around the block representingMarch 25^(th) (e.g., the current date in FIG. 10 ) may be a yellow colorassociated with level one. In comparison, for example, if the user is ata skill level corresponding to level two, the highlight around the blockrepresenting March 25^(th) (e.g., the current date in FIG. 10 ) may be agreen color associated with level two. Also, the color of the highlightor outline around the block representing the current date may bedifferent from the color that the block of the current date is shadedwith to indicate the teen’s (or student’s) progress. For example, if theblock for March 25^(th) is shaded with the color yellow indicating thatthe teen should be (or expected to be) at level one on that date, butthe block for March 25^(th) is highlighted with the color greenindicating that the teen is at level two on that date, then the user maybe able to determine that the teen is ahead of schedule in developingher driving skills. As such, users of the pre-license program may, byviewing the calendar screen 1000, readily appreciate how theteen/student is progressing in relation to the expected or projectedtrack.

Various algorithms may be used to determine the expected or projectedtrack. Examples of factors that may be used in the algorithm includedemographic information of the teen/student, geographical information ofthe teen/student (e.g., which state the teen/student lives in -different states may be deemed harder to obtain a license in because,e.g., they may test different skills), a date on which a user (e.g.,teen/student and/or parent/coach) performed registration (e.g.,registration of step 703), a date the user estimates will be the datethe teen/student takes a driving test to obtain a driver’s license(e.g., “estimated license date” entered in FIGS. 8G and 8H), a number ofhours the teen/student has already driven (e.g., “hours driven so far”entered in FIG. 8J), a data on which the teen/student received adriver’s permit, a birthday of the teen/student, and/or a drivinghistory of a parent/coach (e.g., some parents/coaches may be betterteachers and therefore may be expected to advance their teens/studentsfaster). For example, the pre-license program may retrieve the estimatedlicense date (e.g., a targeted or scheduled driver’s license test date)entered by the user, e.g., during registration. The pre-license programmay then calculate the total amount of days from the current date (thedate on which the calculation is performed or the date on which theestimated license date is retrieved) to the estimated license date.Alternatively, the pre-license program may determine a total number ofdays from the day a teen received her permit to the day she is scheduledto take a driving test and breakdown this total number of days intolevels.

Next the pre-license program may break down the total days into a numberof groups of days corresponding to a number of levels. If there are fourlevels within the pre-license program, the pre-license program may breakdown (or divide) the total number of days into four groups, where eachgroup is assigned to a level. In some embodiments, the groups may havean equal number of days. Alternatively, the total number of days may bebroken down by assigning a percentage of the total days to each level.For example, level one may be assigned the first 13% of the total days,level two may be assigned the next 20% of the total days, level threemay be assigned the next 31% of the total days, and level four may beassigned the last 36% of the total days. Accordingly, if there are 100total days before the student/teen is scheduled to take his/her driver’slicense test, the pre-license program may, for example, assign days 1-13to the first level and color the corresponding dates in the calendaryellow, assign days 14-33 to the second level and color thecorresponding dates in the calendar green, assign days 34-64 to thethird level and color the corresponding dates in the calendar blue, andassign days 65-100 to the fourth level and color the corresponding datesin the calendar purple.

Any percentages may be used in the algorithm assigning days to levels.In some embodiments, if it is desired that the user be given more timeto practice at the first level than in other levels, then the percentageof the total days assigned to the first level may be greater than thepercentages of days assigned to other levels. If calculating percentagesof the total number of days results in fractions of days, thepre-license program may round to the nearest whole number as long asrounding does not result in assigning a date after the estimated licensedate.

Moreover, different embodiments may implement a different number oflevels. Levels may be used to track the progress of students/teens asthey improve their driving skills. Each level may be associated with aset of driving skills to be tested in that level. As the students/teensimprove their driving they may move up to a next level. In someembodiments, a student/teen may have to complete each skill (e.g., reacha goal skill level) in the set of skills at one level to move up to thenext level. Also, in some embodiments, when setting up the projectedtrack, the program may take into consideration a number of hours theteen has already driven and determine whether the teen is on track. Theprogram may discount some of the hours to avoid over-estimations and/orcap the number of hours a teen is able to jump ahead through the levels.

Still referring to FIG. 10 , the calendar screen 1000 may also includeicons to depict when the user has gone on a drive and when the user isplanning to (or scheduled to or recommended to) go on a drive. As shownin FIG. 10 , a past drive icon 1005 may be included in the calendar oneach date that the student/teen performed a drive. FIG. 10 also shows afuture drive icon 1010 that may appear on a date in the calendar onwhich the student/teen is planning to, scheduled to, or recommended togo on a drive. FIG. 10 shows the past drive icons 1005 and future driveicon 1010 (which is a gray version of the past drive icon 1005) ashaving a tear drop shape with a car graphic in the middle; however, anyother shapes, text, and/or graphics may be used for these icons.

The calendar screen 1000 of FIG. 10 may also include icons to depictwhen the user is has participated in a driving training session and whenthe user is planning to (or scheduled to or recommended to) participatein a driving training session. A driving training session may include adrive where the student/teen is accompanied by a professional and/orcertified driving coach. In some states, students/teens may be requiredto complete a certain number of driving training sessions with certifieddriving instructors. In FIG. 10 , a past driving training icon 1015 maybe included in the calendar on each date that the student/teenparticipated in (or completed) a driving training session. FIG. 10 alsoshows a future driving training icon 1020 that may appear on a date inthe calendar on which the student/teen is planning to, scheduled to, orrecommended to participate in a driving training session with acertified or professional driving instructor. FIG. 10 shows the pastdriving training icon(s) 1015 and future driving training icon(s) 1020(which is a gray version of the past driving training icon 1015) ashaving a tear drop shape with a “DT” in the middle; however, any othershapes, text, and/or graphics may be used for these icons.

Further, the calendar screen may depict a target test date icon 1025identifying the date on which the user (e.g., teen/student) is scheduledto or planning to take a driver’s license test. In various states, thedriver’s license test may include a written portion, a driving portion,or both. The target test date icon 1025 may identify the date on whichthe user is scheduled to or planning to take either portion or both.Alternatively, different icons may be used to identify the writtenportion and the driving portion. FIG. 10 illustrates that the targettest date icon 1025 may be a banner with text reciting “DMV;” however,any other shapes, text, and/or graphics may be used for this icon.

Additionally, FIG. 10 illustrates that the calendar screen 1000 mayinclude one or more test skill icons 1030. For example, the calendarscreen 1000 may display test skill icons 1030 of selected test skills.In FIG. 10 , five selected test skills are shown by way of example. Thefive selected test skills may be assigned to a particular level. In someembodiments, a user may be able to assign the selected test skills to aparticular level and swap selected test skills as described furtherherein. Also, in some embodiments, as a user scrolls through thecalendar, the pre-license program may update the calendar screen 1000 todisplay the corresponding selected test skills for the level beingshown. For example, if the user scrolls down through the calendar from adate assigned to level one to a date assigned to level two, the calendarscreen 1000 may be updated to reflect the different selected test skillsof level two.

The graphics or images used for the test skill icons 1030 in FIG. 10 areexamples, and other graphics or images may be used. Also, although thetest skill icons 1030 in FIG. 10 are shown as circles, other shapes maybe used. Moreover, the test skill icons 1030 may be shaded by differentamounts as illustrated in FIG. 10 . The different amounts of shading mayindicate the progress or skill level of the student/teen with respect tothe corresponding test skill. For example, if the test skill icon 1030for braking is shaded halfway, this may symbolize that the teen/studentis halfway to reaching a target skill level with respect to braking avehicle. With respect to the braking skill, a target skill level may bein terms of a number of times a teen/student should bring a vehicle to acomplete stop. For example, the pre-license program may set a totalnumber of full stops to 100 so that the teen/student must complete 100full stops to reach the target level for braking and completely fill thetest skill icon 1030 for braking. In such a case, if the teen/studenthas only completed 50 of the 100 full stops needed to fill the testskill icon 1030 for braking, the calendar screen 1000 may show the testskill icon 1030 for braking as being halfway filled (or colored orshaded).

Alternatively, or additionally, the target skill level for the brakingskill may be in terms of an amount of time (e.g., number of minutes) astudent/teen has driven. The pre-license program may assume, forexample, that a driver needs to drive for a certain amount of timebefore they likely become skilled at braking. For example, thepre-license program may set the target skill level for braking to be 10hours so that the teen/student must complete 10 hours of driving toreach the target level for braking and completely fill the test skillicon 1030 for braking. In such a case, if the teen/student has onlycompleted 3 hours of the 10 hours needed to fill the test skill icon1030 for braking, the calendar screen 1000 may show the test skill icon1030 for braking as being 30% filled (or colored or shaded). The targetskill levels for different skills may be determined in different terms.For example, a total number of stops may be used for the braking skilllevel, while a total driving time may be used for a steering skilllevel. Also, in some embodiments, all skills may be judged in the sameterms (e.g., based on total driving time), but different target skilllevels may be set. For example, 8 hours of total driving may be set asthe target skill level for a turning skill, whereas 15 hours of totaldriving may be set as the target skill level for a braking skill. Thedifference in target skill levels may correspond (e.g., may beproportional) to the amount each skill is expected to be practiced whiledriving. For example, the pre-license program may expect that ateen/student will be practicing turning more often than she practicesbraking within the course of any given trip, and as such, may set thetarget skill level higher for braking. Moreover, target scores to beinputted by a parent/coach and/or determined by the pre-license program(e.g., from accelerometer data, GPS data, etc.) may be used to set thetarget skill levels.

FIG. 10 also illustrates that the calendar screen 1000 may include asettings option 1035. A user may select the settings option 1035 tochange settings of the pre-license program, such as the target licensedate (in the event that the user reschedules the driver’s license test),when (e.g., when behind schedule by a week) and how (email, phone call,push notification, etc.) a user is notified of events, and usernamesand/or passwords. The user may also use the settings option 1035 toaccess other screens to perform various other functions of thepre-license program, such as swapping selected test skills to test atdifferent levels or changing their password.

Further, FIG. 10 illustrates that the calendar screen 1000 may include astart drive option 1040. Selection of the start drive option mayinitiate a driving mode of the pre-license program. The start driveoption 1040 may be selected when a teen/student is about to begin adrive or after the teen/student has started driving (e.g., shortly afterthe student/teen starts driving).

The calendar screen 1000 may also include a tab bar (or toolbar) 1050with tab bar options 1051-1055, as shown in FIG. 10 . The tab baroptions 1051-1055 may be selected by a user thereby allowing a user tomanually access various screens provided by the pre-license program.Selection of the tab bar option 1051 may cause the pre-license programto display a switch user screen so that the user of the computing device100 may switch from being a parent/coach to a teen/student or viceversa. Switching users may be performed because different features mightbe accessible to parents/coaches than those accessible toteens/students.

Selection of the tab bar option 1052 may cause the pre-license programto display a tips screen so that, for example, a coach or parent mayaccess driving tips to give their students or teens. In someembodiments, students/teens may also access a tips screen to reviewdriving tips. That is, in some embodiments, the tab bar option 1052 maybe activated when a user is logged-in as a teen/student as well as whena user is logged-in as a parent/coach.

Selection of the tab bar option 1053 may cause the pre-license programto display a drive log screen so that a user may view informationrelated to past drives. Such information may include dates whenstudents/teens performed drives and scores or points received for thosedrives. The drive log screen may also include information indicating howlong each drive was, what time the drive started, how many points wereearned, a total amount of time (e.g., hours) a student has driven, anaverage number of drives per week, an average drive time (e.g., minutesper drive), and what level the teen/student was at during the drive.

Selection of the tab bar option 1054 may cause the pre-license programto display a progress circle screen, like the progress circle screens inFIGS. 11 and 12 . A progress circle screen may be an example of a menuscreen displayed at step 707.

Referring to FIG. 11 , the progress circle screen may vary depending onthe level a student/teen is at. FIG. 11 illustrates four progress circlescreens 1101, 1102, 1103, and 1104 for four different levels,respectively. The progress circle screens 1101-1104 may include a piechart 1110. The pie chart 1110 may include one or more pie slices. Insome embodiments, the number of pie slices may correspond to the numberof skills tested at the level of the progress circle screen. Forexample, if five skills are tested at level one, the number of pieslices in the pie chart 1110 may be five.

Also, progress circle screens 1101-1104 may indicate the number ofpoints the user has earned. As shown in FIG. 11 , an indication of thenumber of points may be at the center of the pie chart 1110. If the userlogged-on to the pre-license program is a student/teen, the progresscircle screens 1101-1104 may indicate the number of points thestudent/teen has earned (or been awarded). Alternatively, if the userlogged-on to the pre-license program is a parent/coach, the progresscircle screens 1101-1104 may indicate the number of points theparent/coach has earned (or been awarded). Accordingly, students andcoaches may receive their own points. In some embodiments, the progresscircle screens 1101-1104 may indicate combined points for astudent-coach pair or may indicate separate point values for both on asingle screen. In some embodiments, the number of points a coach/parenthas earned may correspond to a total number of points earned by theirstudents/teens.

In addition, the progress circle screens 1101-1104 may include a startdrive option 1140 similar to the start drive option 1040 of the calendarscreen 1000. The progress circle screens 1101-1104 may also include atab bar 1150 similar to the tab bar 1050 of the calendar screen 1000.

Further, the progress circle screens 1101-1104 may include an outercircle graph 1160. As shown in FIG. 11 , the outer circle graph 1160 maycircle the pie chart 1110. The outer circle graph 1160 may indicate aprogress of the student/teen towards obtaining target skill levels forcertain skills. FIG. 12 illustrates various features of the outer circlegraph 1160.

Referring to FIG. 12 , the outer circle graph 1160 may be filled as theteen/student progresses towards obtaining a target overall skill level.In some embodiments, the outer circle graph 1160 may be filled in aclockwise direction starting at 12 o′clock. The progress circle screen1201 illustrates an example of the outer circle graph 1160 where theteen/student has not made any progress. The progress circle screen 1202illustrates an example of the outer circle graph 1160 where theteen/student has reached a halfway point toward the target overall skilllevel. The progress circle screen 1203 illustrates an example of theouter circle graph 1160 where the teen/student’s progress is over 75% ofthe target overall skill level. Finally, the progress circle screen 1204illustrates an example of the outer circle graph 1160 where theteen/student has reached the target overall skill level. Variousalgorithms may be used to determine the target overall skill level. Thetarget overall skill level may be different for differentteens/students. Further, various algorithms may be used to determine theoverall skill level of a teen/student at any given time. For example,the pre-license program may determine that a teen/student has reached50% of the target overall skill level if the teen/student has reached50% of the target skill level for each of the selected skills (or eachof the skills available to be selected). Alternatively, the pre-licenseprogram may determine that a teen/student has reached 50% of the targetoverall skill level if the teen/student averages 50% of the target skilllevel across all of the selected skills (or all skills available to beselected).

FIG. 12 further illustrates that each of the pie slices of the pie chart1110 may be filled as the teen/student progresses towards obtaining acorresponding target skill level. For example, as a teen/studentprogresses towards obtaining a target skill level for braking, the pieslice for the braking skill may be filled from the center of the piechart 1110 outward. Meanwhile, as a teen/student progresses towardsobtaining a target skill level for turning, the pie slice for theturning skill may be filled from the center of the pie chart 1110outward. The progress circle screen 1201 illustrates an example of wherethe pie slices are not filled, such as when the teen/student has justregistered or not begun to drive. The progress circle screen 1202illustrates an example where a portion of the pie slices are filled. Asillustrated in the progress circle screen 1202, each pie slice may befilled by a different amount. The amount that each pie slice is filledmay correspond to a progress towards obtaining the target skill levelfor that skill. The progress circle screen 1203 illustrates an examplewhere some pie slices have been completely filled while others have notbeen completely filled. Finally, the progress circle screen 1204illustrates an example where all pie slices have been completely filled.Various algorithms may be used to determine the target skill levels foreach skill. The target skill level may be different for differentteens/students and/or for different skills. For example, a target skilllevel for braking may be different than a target skill level forturning. Also, a target skill level for braking for a teen/studentliving in an urban area may be different than a target skill level forbraking for a teen/student living in a rural area. Further, variousalgorithms may be used to determine the skill level of a teen/student atany given time. In some embodiments, the algorithms for determining howmuch pie slices are filled may be similar or the same as the algorithmsused to determine how much the test skill icons 1030 of FIG. 10 arefilled.

Still referring to FIG. 12 , the progress circle screens 1201-1204 mayinclude a current date icon 1205. The current date icon 1205 mayindicate the current date (e.g., month, day, and/or year) at a time whenits progress circle screen is being displayed. For example, if theprogress circle screen 1202 is being displayed on Dec. 16, 2013, thecurrent date icon 1205 may indicate “Dec. 16.” As shown in FIG. 12 , thecurrent date icon 1205 may appear on the outer circle graph 1160. If thecurrent date icon 1205 is ahead of the filled portion of the outercircle graph 1160, the student/teen may be behind schedule in terms ofbecoming prepared to take a driver’s license test. In comparison, if thecurrent date icon 1205 is behind a leading edge of the filled portion ofthe outer circle graph 1160, the student/teen may be ahead of schedulein terms of becoming prepared to take a driver’s license test. As such,the current date icon 1205 may serve as an indication of whether theteen/student is on track to reach a target overall skill level by thetime the driver’s license test date is reached.

In some embodiments, the current date icon 1205 may be moved (e.g.,dragged) by a user. A user may pull the current date icon 1205 back intime along the circle to a past date (which may be displayed) to seeindividual skill breakdowns on that past date and/or an overall score onthat past date. Further, in some embodiments, a user may move thecurrent date icon 1205 forward in time along the circle to a future date(which may be displayed) to see target scores or target skill levels.

Returning to FIG. 7 , after a menu screen is displayed in step 707, auser may navigate the pre-license program and/or change settings of thepre-license program at step 709. In step 709, the pre-license programmay monitor (e.g., using listeners) inputs to the computing device 100to determine whether the user is navigating through the pre-licenseprogram or changing any settings of the pre-license program.

At step 709, a parent/coach may select which student/teen is to beevaluated (e.g., which student/teen is going to be driving) from among aplurality of students/teens of the parent/coach. Similarly, astudent/teen may designate which parent/coach is going to beparticipating in a drive or look up information (e.g., scores orreviews) of a particular parent/coach.

At step 709, the user may navigate to a swap skills screen to swap theskills to be tested at a particular level. The number of skills testedat any one level may vary. For example, one student/teen may be testedon four skills at level one, while another student/teen may be tested onfive skills at level one. Also, the number of skills tested may varyfrom level to level. For example, a teen/student may be tested on threeskills in level one and tested on four skills in level two. The numberof skills tested may increase as the levels increase. Further, thenumber of skills tested at each level may be the same, but the type ofskills may be different. For example, if there are four levels, theremay be four different sets of skills tested.

FIG. 13 illustrates an example of a swap skills screen 1300. A user maydetermine which skills are tested at each of the different levels byswapping skills on the swap skills screen 1300. In some embodiments, thepre-license program may have default skills assigned to certain levels.A user may change which test skills are assigned to which levels byswapping the default skills with optional skills. In some embodiments,the pre-license program may have restrictions on which skills may beswapped. For example, the pre-license program may require that certainskills be assigned to certain levels. The pre-license program may,therefore, prevent a user from swapping certain skills. For example, inlevel one there may be five default skills: braking, car facts,steering, turning, and position. Level one may also include two optionalskills: acceleration and backing. In level one, the braking skill may belocked, and therefore, might not be swapped with an optional skill.

As illustrated in FIG. 13 , the swap skills screen 1300 may includedefault test skill icons 1301 and optional test skill icons 1302. A usermay select any of the skill icons on the swap skills screen 1300 bytouching or pressing and/or holding the skill icons with a finger orother stylus. The swap skills screen 1300 may also include a descriptionof the skill to be tested corresponding to the selected skill icon. Auser may change which skills are selected for testing at a particularlevel by selecting a default test skill icon 1301 and optional testskill icon 1302 to swap. For example, a user may press (or click) adefault test skill icon 1301 and drag it to a part of the swap skillsscreen 1300 where optional test skill icons 1302 are displayed. Then, auser may press (or click) an optional test skill icon 1302 and drag itto a part of the swap skills screen 1300 where the selected test skillicons are displayed. Alternatively, when you drag the test skill icon1301 over an optional skill icon 1302, the two skills icons may beswapped. Or, when you drag the test skill icon 1301 to where theoptional test skill icons 1302 are displayed, the program mayautomatically move the first or top-most optional test skill icon towhere the test skill icons 1301 are displayed. In some embodiments, adifferent swap skills screen 1300 may be used for each of the differentlevels so that a user may set the skills to be tested for each level.Also, in some embodiments, swapping is not necessary and optional testskill icons 1302 may be added as test skill icons 1301.

Returning to FIG. 7 , the pre-license program may cause the computingdevice 100 to detect whether a user has selected to begin a drive atstep 711. In some embodiments, the pre-license program may control thecomputing device 100 to detect when a user presses a button, such as thestart drive option 1040 of FIG. 10 . The pre-license program maycontinuously monitor inputs to detect when a user selects to begin adrive. A user (e.g., parent/coach) may select to begin a drive at a timewhen (or around a time when), for example, the parent/coach andteen/student get in a vehicle 207 to go on a drive in which theteen/student is the driver.

If the pre-license program determines that the user is not going on adrive (e.g., determines that a drive option has not been selected), theprocess of FIG. 7 may proceed to step 725. However, if the pre-licenseprogram determines that the user is going on a drive (e.g., determinesthat a drive option has been selected), the process may proceed to step713. At step 713, the pre-license program may determine whether the userof the computing device 100 is a parent/coach or teen/student. Thepre-license program may determine whether the user of the computingdevice 100 is a parent/coach or teen/student based on who is logged-inon the pre-license program.

If the teen/student is determined to be the user at step 713, thepre-license program may request a switch in users at step 715. Forexample, the pre-license program may cause the computing device 100 toprompt the user to switch users so that the user is a parent/coachinstead of a teen/student. For example, the pre-license program mayprompt the user to log-in as a parent/coach. For example, thepre-license program may prompt the user to enter a username and/orpassword of a registered parent/coach.

If the switch is performed at step 715 or a parent/coach was determinedto be the user at step 713, the pre-license program may enter apre-drive mode at step 717. In step 717, the pre-license program mayprovide the parent/coach with advice or tip information. The advice ortip information may include suggestions for the coach/parent to provideto the driver (e.g., the student/teen) before, during, or after thedrive. The advice or tip information may also include suggestions ofthings for the parent/coach to do during the drive. For example, theadvice or tip information may include a suggestion to talk calmly whengiving negative feedback and to compliment the student/teen when they dowell. The advice or tip information may also include things for theparent/coach to consider in evaluating the driving of the teen/student.For example, the advice or tip information may instruct the parent/coachto look at how the teen/student holds a steering wheel of the vehicle207, to look at where the teen/student looks at a stop sign, to look athow much distance the teen/student maintains from vehicles 207 ahead, tolook at when the teen/student uses turn signals, etc.

One or more tips may be displayed during the pre-drive mode. Theparent/coach may control whether they would like to see more tips orreceive more advice. In some embodiments, the parent/coach may search acatalog of tip information to look for specific advice related to aspecific topic. For example, if the parent/coach believes theteen/student is having difficulty turning, the parent/coach may searchfor advice related to turning, such as suggestions on how the drivershould move his/her hands in a turn. In some embodiments, the catalog oftip information may be organized by topics corresponding to the skillstested. For example, the tip information may be organized intocategories, such as braking, turning, positioning, etc., that correspondto the skills that may be tested so that the parent/coach (orteen/student) may readily find information related to skills they mayneed improvement on.

In some embodiments, the pre-license program may move from the pre-drivemode to a drive mode automatically after a certain period of timeelapses from when the pre-drive mode began. In other embodiments, thepre-license program may remain in the pre-drive mode until the user(e.g., parent/coach) selects an option to enter the drive mode or exitthe pre-drive mode (e.g., cancel a drive). For example, the pre-licenseprogram may enter the drive mode at step 719 when the parent/coachselects a start button on a screen of the computing device 100 in thepre-drive mode. Still, in some embodiments, the pre-license program mayuse accelerometer data and/or GPS data of the computing device 100, orreceived by the computing device 100, to detect that the vehicle 207 ismoving, and therefore, to enter the drive mode at step 719.

When the pre-license program enters the drive mode at step 719, thepre-license program may start a timer (e.g., a timer module which may beimplemented using hardware and/or software) to begin timing a drive. Insome embodiments, when in the drive mode, the pre-license program maycause the presentation of a screen with the duration of the drive (e.g.,how long the drive has thus far lasted). The pre-license program mayalso indicate the skills to be tested (e.g., display the test skillicons 1030) during the drive. In addition, the parent/coach may haveaccess to tip information during the drive mode. In some embodiments,the parent/coach may select one of the test skill icons 1030 displayedduring the drive mode to access tip information related to that skill.

In some embodiments, the pre-license program may evaluate drive data(e.g., accelerometer data, GPS data, vehicle sensor data, etc.)indicative of the driver’s driving behavior/performance. Moreover, thepre-license program may provide tip information or advice during thedrive mode based on the evaluation. For example, the pre-license programmay determine that the driver is not braking smoothly based on data froman accelerometer of the computing device 100 executing the pre-licenseprogram, and therefore, the pre-license program may display a tip to thecoach/parent so the coach/parent may give helpful advice to thestudent/teen to improve their braking. In some embodiments, in the drivemode, the pre-license program may issue certain driving challenges. Forexample, the pre-license program may issue a driving challenge to makeall turns well, call out the location of nearby vehicles, or call outany time a vehicle or other object is in a blind spot of the driver’svehicle. As drivers improve their skills, additional challenges may beunlocked.

In step 721, the pre-license program may determine whether the drive iscomplete. The pre-license program may determine that the drive iscomplete when a finish or stop option (e.g., button) is selected on ascreen displayed during the drive mode. As such, a user (e.g.,parent/coach) may trigger the pre-license program to determine that thedrive is complete. In some embodiments, the pre-license program maycontinuously monitor user inputs to determine whether a finish or stopbutton is selected. Alternatively, the pre-license program may determinethat the drive is complete automatically based on drive data collectedby the computing device 100. When the pre-license program determinesthat the drive is complete, it may stop the timer so as to obtain aduration of the drive.

Further, in some instances, there may be a required minimum duration ofthe drive that must be reached for the drive to be complete.Accordingly, at step 721, the pre-license program may determine whetherthe drive duration (e.g., obtained from a time of a timer when a finishbutton is selected) exceeds a minimum duration. If, for example, thepre-license program determines that the drive was too short, thepre-license program may not count the drive. As such, the pre-licenseprogram might not award the driver (e.g., student/teen) with pointsand/or increase the skill levels of the driver (e.g., fill the pie chart1110).

The pre-license program may remain in the drive mode until the drive iscomplete. If the pre-license program determines that the drive iscomplete at step 721, the process may proceed to step 723. In step 723,the pre-license program may score the teen/student on their drivingduring the recent drive. The pre-license program may display one or morescoring screens that allow a user (e.g., parent/coach) to score thedifferent skills selected for testing. For example, if five skills areselected for testing, the parent/coach may score each of the five skillsat step 723. Each of the skills tested may be associated with a numberof total points that can be obtained for the respective skill. Forexample, a braking skill may be associated with a total of 360 points.The student/teen may receive a portion of the total number of pointsbased on his/her score and/or a duration of the drive.

FIG. 14 illustrates five different scoring screens 1401-1405 that may bedisplayed at step 723. The scoring screens 1401-1405 illustrate variousfeatures that may be performed by the pre-license program at step 723.The first scoring screen 1401 illustrates that the scoring screens mayprovide instructions to the user (e.g., parent/coach) on how to scorethe various test skills. The second scoring screen 1402 illustrates thatthe pre-license program may provide questions to ask the user. Thesecond scoring screen 1402 also illustrates that the pre-license programmay provide one or more slider bars for scoring the various test skills.For example, the pre-license program may provide a slider bar for eachskill to be tested during the recent drive. A user (e.g., coach/parent)may slide one or more of the test skill icons 1030 along theirrespective slider bars to provide scores for the various test skills.The third scoring screen 1403 illustrates that the pre-license programmay prompt the user to confirm that the user is done scoring so that theuser does not accidently enter incorrect scores. The fourth scoringscreen 1404 and fifth scoring screen 1405 illustrate that thepre-license program may provide guidance on how the user (e.g.,parent/coach) should score the driver on the various test skills.

In step 723, the pre-license program may also determine how many pointsthe driver earned during the recent drive. Further, the pre-licenseprogram may adjust values associated with the test skills so that thepie chart 1110 and outer circle graph 1160 may be updated. Moreover, thepre-license program may store the scores in association with the drivefor which they were awarded so that a user of the computing device maylook back at the scores (e.g., by reviewing a drive log) at a latertime. As illustrated in FIG. 7 , after scoring is complete, the processmay return to step 707 to display one of the menu screens.

Returning to step 711, if the pre-license program determines that theuser is not going on a drive (e.g., determines that a drive option hasnot been selected), step 725 may be performed. In step 725, thepre-license program may determine whether the user has selected to takea quiz. The pre-license program may monitor inputs of the computingdevice 100 to detect when a user selects to take a quiz. In addition tohelping prepare the student/teen to track the progress of their drivingbehavior, the pre-license program may help to educate the teen/studentabout recommended driving behaviors and driving laws. To facilitate thiseducation component, the pre-license program may provide one or morequizzes. Quizzes may include one or more questions for the teen/studentto answer.

If the user selects to perform a quiz (yes at step 725), the pre-licenseprogram may perform step 727. In step 727, the pre-license program maydetermine whether the user is a coach/parent or student/teen. Step 727may be performed in a similar manner as step 713 described above. Forexample, the pre-license program may perform step 727 by using a similarmodule as that used to perform step 713.

In some embodiments, the quiz may be intended for testing thestudent/teen only, and not the coach/parent. Accordingly, if the user isdetermined to be a parent at step 727, the pre-license program mayprompt the user to switch users at step 729. Step 729 may be performedin a similar manner as step 715 described above. For example, thepre-license program may perform step 729 by using a similar module asthat used to perform step 715.

If the switch is performed at step 729 or a student/teen was determinedto be the user at step 727, the pre-license program may provide a quizto the student/teen at step 731. In step 731, the pre-license programmay provide one or more questions of a quiz. Different quizzes withdifferent questions may be provided for different levels. To complete alevel, a student/teen may have to take a quiz. The difficulty of thequestions for each level may increase as the student/teen progresses tosubsequent levels. The questions may be in various formats and includevarious types of questions, such as true or false type questions,multiple choice type questions, etc. The quiz may also be timed. Forexample, a user may have 60 seconds to answer as many quiz questions asthey can.

In step 733, the results of the quiz may be displayed. The results mayindicate how many of the questions the student/teen got right. Theresults may include the correct answers so the student/teen may learn.At step 733, the pre-license program may also determine a score and/orhow many points have been earned based on the results. Variousalgorithms may be used to determine the score and/or points awarded. Insome embodiments, all questions may be given equal weight. In otherembodiments, different questions may be given different weights. Forexample, questions deemed to be more difficult (e.g., past results fromquizzes taken by others may indicate the degree of difficulty of somequestions) may be count more toward the score and/or points awarded.

Further, step 733 may include displaying an indication of how thestudent/teen faired in comparison to other students/teens. For example,the results may include an indication that the student/teen answeredmore questions correctly than 90% of the people who answered thequestions. In some embodiments, the pre-license program may include asocial networking component that allows students/teens to share theresults of the quiz as well as other information indicating thestudent/teen’s progress in any of the tested skills on a socialnetworking site. For example, the pre-license program may post theresults of the quiz and/or information indicating that a particular user(e.g., teen/student) is at a particular level and/or at a particularpoint towards obtaining a target overall skill level on a socialnetworking site, like FACEBOOK, or another website.

As illustrated in FIG. 7 , after results are displayed at step 733, theprocess may return to step 707 to display one of the menu screens. Insome cases, the results might not be displayed in step 733, and theprocess may proceed to step 707 after the quiz is completed or ended instep 731. In such cases, the results may be displayed on the menu screendisplayed.

The screens described herein may be generated by the pre-license programitself (e.g., without any external assistance) or may be generated byexchanging information with an application server 203. In the lattercase, the pre-license program may, for example, cause the computingdevice 100 executing it to send the application server 203 a signalindicating that the progress circle screen has been requested, and inresponse, the application server 203 may send a return signal includinginformation to aid the pre-license program to display the progresscircle screen. This return signal may include the pixel data forrendering the appropriate progress circle screen or data indicating,e.g., what level the driver is at so that the pre-license program maygenerate the appropriate progress circle screen.

Also, it should be understood that the screens disclosed herein areillustrative and that the pre-license program may provide differentand/or additional screens. The pre-license program may also provideadditional features. For example, the pre-license program may generate apush notification or other message (e.g., email) to notify the user(e.g., coach/parent or student/teen) when the student/teen falls acertain amount behind schedule. For example, the pre-license program mayrun in the background of a computing device 100 to determine when thestudent/teen falls a week behind schedule, and in response to thedetermination, the pre-license program may generate an email or pushnotification to notify a user of the computing device 100.

Another additional feature of the pre-license program may includeestablishing and scoring competitions. For example, the pre-licenseprogram may hold a competition among one or more students to allowstudents to test their driving skills against other students. Thewinner(s) of the competition may be determined based on an algorithmthat considers one or more factors (e.g., average score, first to get apredetermined score, etc.). A student may be matched against anotherstudent to compete on a specific drive (or drives) or over a period oftime (e.g., day, week, month, etc.). Students may also compete withrespect to taking the quizzes or performing the driving challengesdescribed herein. The pre-license program may perform a search to findpotential competitors. Such a search may be based on various criteria(e.g., time of a drive, driver age, geographic area of driver, etc.).For example, two students may be matched up because they are both aboutto go on a drive in a similar geographic region. The pre-license programmay notify the participants of the competition of the winner and anyrewards (virtual or real). In some embodiments, the competition may bebetween groups or teams of students. The pre-license program may assignstudents to teams or allow students to select their team. In someembodiments, a student may be on more than one team. Further, in someembodiments, competitions may also be among coaches. In suchembodiments, coaches may be judged based on the performance of theirstudents and/or on the coaching advice they give.

Yet another additional feature of the pre-license program may be that itallows a parent/coach to add an alert to remind them of items on futuredrives. For example, a parent/coach may set an alert to remind them totell a teen/student to slow down at an upcoming intersection (which maybe determined from GPS data) because it is difficult to see around thecorner.

Aspects of the invention have been described in terms of illustrativeembodiments thereof. Numerous other embodiments, modifications, andvariations within the scope and spirit of the appended claims will occurto persons of ordinary skill in the art from a review of thisdisclosure. For example, one of ordinary skill in the art willappreciate that the steps illustrated in the illustrative figures may beperformed in other than the recited order, and that one or more stepsillustrated may be optional in accordance with aspects of the invention.

What is claimed is:
 1. An apparatus, comprising: at least one processor;and memory storing computer-executable instructions that, when executedby the at least one processor, cause the apparatus to: determine a setof days from an initial date until a test date; assign, to each day ofthe set of days, one of a plurality of levels as an expected level forthat day; in response to detecting a driving start event on a particularday: initiate a connection and establish a reference time with anadditional computing device, receive, via one or more sensors, firstdriving data associated with a driver, and receive, via the connectionfrom the additional computing device, second driving data associatedwith the driver; determine, based on correlating the first driving dataand the second driving data using the reference time, a present level ofthe driver for the particular day; and output, via a graphical userinterface, the present level of the driver for the particular day and anexpected level for the particular day.